Zmena BorderStyle v OnShow
Otázka od:  Lebeda David
29. 9. 2004 14:34
Ahoj,
v OnShow formu potrebuji podle jistych okolnosti nastavit BorderStyle 
formu na bsSingle nebo bsSizeable. Jenze Delphi tohle nechteji udelat 
- dostanu vynadano, ze nesmim menit Visible v OnShow nebo OnHide. 
Kdyz se to pokusim obejit tak, ze si pres PostMessage v OnShow 
necham poslat svou vlastni zpravu a v jeji obsluze teprve menim 
BorderStyle, tak to sice funguje, ale okno pri tom blikne. Jak tedy 
mohu v OnShow menit BorderStyle tak, aby to slo bez rusivych efektu?
Diky
David Lebeda
Odpovedá:  Ondrej Kelle
29. 9. 2004 14:51
> v OnShow formu potrebuji podle jistych okolnosti nastavit BorderStyle 
> formu na bsSingle nebo bsSizeable. Jenze Delphi tohle nechteji udelat 
> - dostanu vynadano, ze nesmim menit Visible v OnShow nebo OnHide. 
> Kdyz se to pokusim obejit tak, ze si pres PostMessage v OnShow 
> necham poslat svou vlastni zpravu a v jeji obsluze teprve menim 
> BorderStyle, tak to sice funguje, ale okno pri tom blikne. Jak tedy 
> mohu v OnShow menit BorderStyle tak, aby to slo bez rusivych efektu?
Zmena BorderStyle sposobi uvolnenie a znovuvytvorenie okna, takze dost
tazko. Mozno by sa dalo vytvorit nejake docasne okno s kopiou bitmapy
povodneho okna, ktorym ho na tu dobu prekryjes.
HTH
TOndrej
Odpovedá:  Flaska Jakub
29. 9. 2004 17:52
> v OnShow formu potrebuji podle jistych okolnosti nastavit BorderStyle 
> formu na bsSingle nebo bsSizeable. Jenze Delphi tohle nechteji udelat 
Nevytvarej ten formular pri spusteni ale az kdyz budes vedet BorderStyle v 
runtime.
if not Assigned(MujForm) then begin
  Application.CreateForm(TMujForm, MujForm);
  MujForm.BorderStyle := bsSigle;
end;
MujForm.Show;
Jakub Flaska
Odpovedá:  Vlastimil Burian
29. 9. 2004 18:20
SendMessage(Handle, WM_SETREDRAW, 0, 0);
BorderStyle := bsNone;
SendMessage(Handle, WM_SETREDRAW, 1, 0);
-----------------
v OnShow formu potrebuji podle jistych okolnosti nastavit BorderStyle 
bez rusivych efektu?